1. Statement of the Technical Field
The present invention relates to the field of distributed computing and more particularly to the selection of a remote procedure call protocol with which access can be provided to services in a distributed object.
2. Description of the Related Art
Recent efforts in distributed computing address the development of a general-purpose distributed computing infrastructure, integrated security, availability, scalability, reliability, and manageability for general distributed computing applications. In the past decade, the development of a general-purpose distributed computing infrastructure has taken divergent paths—each path adhering to a particular remote procedure call protocol. A first approach to distributed computing incorporated the distributed component object model (DCOM), while the second approach to distributed computing incorporated the Common Object Request Broker Architecture (CORBA) and its close cousin, Java Remote Method Invocation (RMI) over the Internet Inter-ORB Protocol (IIOP).
In order to integrate both approaches in a heterogeneous distributed network architecture, DCOM/CORBA bridges were developed. As departmental and enterprise level networks typically incorporated only one of the DCOM or CORBA (or Java RMI) protocols, bridges and message-oriented middleware were viewed as suitable systems integration technologies. The rise of the Web application, however, has posed new challenges for systems integrators as information technologists now expect the ability to invoke remote services from a client process without regard for the platform orientation of the server process. Yet, bridges and message-oriented middleware can exact a performance toll which cannot be tolerated by the Quality of Service (QoS) requirements of many emerging Web applications.
In response, the Simple Object Access Protocol (SOAP) has been developed to bridge the DCOM and CORBA remote procedure call technologies. SOAP is an XML-based message exchange format that is platform neutral. Accordingly, SOAP permits the initiation of information sharing relationships among disparate parties, across different platforms, languages and programming environments. Importantly, SOAP is not a competitive technology to component systems and object-request broker architectures such as CORBA and DCOM, but rather complements these technologies. In particular, while CORBA, DCOM, and Enterprise Java enable resource sharing within a single organization, SOAP technology aims to bridge the sharing of resources among disparate organizations possibly located behind firewalls.
Similar to Java RMI-IIOP, SOAP applications exploit a synchronous wire-protocol (typically HTTP) to communicate with Web services to retrieve dynamic content. Presently, existing approaches to object distribution assume that only a single remote procedure call protocol such as RMI-IIOP or HTTP/SOAP will be sufficient for all messages flowing between the client and server. Different remote procedure call protocols, however, exhibit different strengths depending upon network architecture and application. For instance, RMI-IIOP can perform well within the corporate intranet behind a firewall, but traversing a firewall often can prove problematic for RMI-IIOP. HTTP/SOAP, by comparison, performs well across the firewall, but involves a modest performance deficiency as an XML parser is required to process SOAP messages. Notwithstanding, in an effort simply to enable remote services invocation, often Web services are delivered using the “lowest common denominator” approach.